const fs = require('fs')

function read(fpath) {
  return new Promise((resolve, reject) => {
    fs.readFile(fpath, 'utf-8', (error, data) => {
      if (error) return reject(error)
      resolve(data)
    })
  })
}

const p1 = read('./files/1.txt')
const p2 = read('./files/2.txt')
const p3 = read('./files/3.txt')

// p1.then(function(data) {
//   console.log(data)
// })

// p2.then(function(data) {
//   console.log(data)
// })

// p3.then(function(data) {
//   console.log(data)
// })

// 需求1：所有的异步操作都完成才打印Promise.all() all所有的异步操作都完成才做下一步操作
// Promise.all(数组)
// Promise.all([p1, p2, p3]).then(function(data) {
//   console.log(data)
// })

// 需求2：只要有一个异步操作完成就执行一步Promise.race()
// Promise.race(数组)
Promise.race([p1, p2, p3]).then(function(data) {
  console.log(data)
})
